<template>
  <div>
    <button @click="paths">hhhh</button>
  </div>
</template>

<script>
export default {
  data() {
    return {};
  },
  methods: {
    paths() {
      let paths = ["/a/b/c.txt", "/a/d/e.txt", "/f/g.txt"];
      this.pathToTree(paths);
    },
    pathToTree(paths) {
      // 假设paths是一个包含文件路径的数组
      // 初始化空树
      let tree = [];

      // 遍历文件路径
      paths.forEach((path) => {
        let parts = path.split("/"); // 假设使用'/'作为分隔符
        let currentNode = tree; // 从根节点开始

        // 遍历目录部分
        for (let i = 0; i < parts.length - 1; i++) {
          let dirName = parts[i];
          if (!currentNode[dirName]) {
            currentNode[dirName] = []; // 如果目录不存在，则创建它
          }
          currentNode = currentNode[dirName]; // 移动到下一个目录
        }

        // 处理文件名（作为最后一个部分）
        let fileName = parts[parts.length - 1];
        if (!currentNode.files) {
          currentNode.files = []; // 初始化文件列表（如果尚不存在）
        }
        currentNode.files.push(fileName); // 将文件名添加到当前目录的文件列表中
      });
      console.log(tree);

      return tree;
    },
    // 输出树状结构
  },
  computed: {},
  filters: {},
  watch: {},
};
</script>

<style lang="scss" scoped></style>
